home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freaks Macintosh Archive
/
Freaks Macintosh Archive.bin
/
Freaks Macintosh Archives
/
Ham⁄GPS
/
IP Folder
/
HAMradio TCP⁄IP
/
Docs
/
MacIP Specs 1.sea
/
MacIP Specs 1
next >
Wrap
Text File
|
1993-01-04
|
31KB
|
679 lines
Draft Proposal for the Specification of IP Datagrams transported over
AppleTalk Networks (MacIP)
Status of this Memo
This is an initial attempt to document the current "pseudo standard"
referred to as MacIP. This document does not attempt to correct any of
the problems or shortcomings of the protocol and implementations. It
simply documents the current state of the art.
1 Introduction
The goal of the MacIP architecture is to provide access to TCP/IP-based
protocols for the Apple Macintosh computers not directly connected to
Ethernet.
Traditionally access to IP protocols from a host computer required a
direct connection to a high speed network such as Ethernet. Direct
Ethernet connection was not possible for the original versions of the
Macintosh computer. The early Macintoshes did, however, come equipped
for LocalTalk, Apple Computer's medium speed network specification.
Every Macintosh comes from the factory with the hardware and software
necessary to use the LocalTalk network. There is also a well defined
set of protocols, AppleTalk [1], which roughly cover the ISO seven layer
model.
This paper describes the present day method of using the existing
LocalTalk network to transport TCP/IP packets to and from an IP network
with the aid of a gateway, allowing any Macintosh computer to be a host
on an IP network. For the remainder of this paper, the term gateway
will refer to a device which provides this service.
Transporting IP over an AppleTalk Network
Transport of IP packets over LocalTalk is achieved by encapsulating them
in Datagram Delivery Protocol (DDP) datagrams and sending them to a
gateway for de-encapsulation and delivery to the IP network. The
typical gateway is a two port device, with one port on a LocalTalk
network and one port on an Ethernet. When the packet is received by the
gateway's LocalTalk port, the DDP header is stripped and a proper
Ethernet header prepended. The packet is then sent out through the
Ethernet port. Ethernet-based IP packets bound for a Macintosh on
LocalTalk go though a similar sequence of events. The Ethernet header
is removed and the packet is encapsulated in a DDP datagram and then
sent to the LocalTalk network.
In addition to encapsulation, there are addressing and address
resolution issues which the gateway must handle on both networks.
This document is purposefully confined to the description of the two
port gateway, where one port is connected to an AppleTalk network and
one port is connected to a Ethernet IP network. Note that the AppleTalk
port of the gateway does not need to be restricted to LocalTalk as
AppleTalk may the transported via other media, such as Ethernet.
Address Resolution
IP address resolution is required on both sides of the gateway. On the
Ethernet side traditional Ethernet Address Resolution Protocol (ARP) is
required to map an IP addresses to an Ethernet addresses [2].
On the AppleTalk side the gateway must map an IP address to a AppleTalk
address. Two methods exist for performing IP address resolution on the
AppleTalk network. Each has some advantages over the other, and both
have been used in different implementations of the MacIP architecture.
A proper implementation of the gateway should support both.
The first method uses the DDP datagram protocol and functions
essentially like the Ethernet ARP protocol. This is referred to as DDP
ARP. The second method uses the AppleTalk Name Binding Protocol, (NBP).
It takes advantage of this protocol's ability to span AppleTalk
networks. This is referred to as NBP ARP.
For historical reasons, DDP ARP should be supported by MacIP gateways,
although NBP ARP is more widely used, and offers certain advantages, as
discussed below.
2 Architecture
2.1 Overview of the Current Solution
Current implementations of the MacIP architecture provide both a gateway
and a client/server system between the Macintosh host and the gateway.
The gateway performs encapsulation and address mapping between the
AppleTalk and IP networks, as well as various server functions. The
architecture requires software on the Macintosh to implement the client
side of this architecture, as well as the basic IP host functions.
The current implementations provide Macintosh computers with access to
TCP/IP protocols. There are also provisions for automatic assignment of
IP addresses and discovery of well known IP addresses such as name
servers.
2.2 Encapsulation
TCP/IP packets are encapsulated in DDP packets of a special DDP type.
The source and destination sockets of the packet are specified as a
special, fixed "MacIP" socket.
The TCP/IP packet is stripped of any media headers and then sent in the
data portion of the DDP packet described above.
Due to the limited size of AppleTalk DDP packets, the Maximum Transfer
Unit (MTU) of the AppleTalk network is smaller than that of EtherTalk.
The smaller MTU size of AppleTalk implies that gateways must fragment
packets coming from Ethernet which are larger than the AppleTalk MTU.
Some older implementations of MacIP gateways do not fragment large IP
packets from Ethernet. They are quietly dropped instead. This behavior
is not correct. All implementations of MacIP on the Macintosh must be
able to deal with inbound fragmented IP packets.
Using DDP versus LLAP
As a digression, it is worth discussing why DDP is used as a transport
instead of the Link layer protocol, LocalTalk Link Access Protocol
(LLAP), similar to what is done on Ethernet networks. A solid argument
can be formed which states that by using LLAP, you could model MacIP, or
IP on AppleTalk, directly after the evolution of IP on Ethernet.
Taking this approach would lead you to use an ARP nearly identical to
the ARP used on Ethernet and encapsulate IP packets in a special LAP
type.
While this technique would work fine, these special packets would not be
"routable" by any normal AppleTalk router. This limits the IP on
AppleTalk network to a single wire. The initial design allowed for
transport of the encapsulated IP packets over an arbitrary AppleTalk
network. Using DDP for transport allows the packets to be routed by any
AppleTalk router with no knowledge of IP, which makes the system more
expandable and flexible.
2.3 Addressing
A Macintosh host wishing to send an IP packet needs to determine the
local IP destination address. A decision is initially made as to
whether the packet is for this IP network. If it is not (the general
case for packets from a Macintosh), the local destination IP address is
set to the gateway's IP address. Once the local destination IP address
is determined then address resolution is performed to determine the
AppleTalk address to which the packet will be sent.
It is safe to skip the initial is this packet for my network test and
simply ARP for the destination IP address, as all of the current gateway
implementation will proxy ARP for addresses outside of their network
(i.e. they will reply on behalf of addresses outside the range of
addresses assigned to the AppleTalk network).
The issue of broadcast address mapping is somewhat ill defined. It is
safe, however, to say that encapsulated IP packets destined for the IP
broadcast address should have the DDP datagram addressed to the LLAP
broadcast node, 255.
Conversely, when receiving encapsulated IP packets sent to the LLAP
broadcast node, these should be treated as wire level broadcast packets
and not routed. It is assumed that this should be a function of the
AppleTalk and IP router portions of the MacIP gateway. It follows that
directed broadcasts should be noticed and handled in the appropriate
manner [4].
2.4 Address Resolution
As noted above, there are two styles of AppleTalk-based IP address
resolution used by current MacIP implementations.
DDP ARP
The initial gateway implementations of MacIP used the DDP ARP method.
This method closely follows the protocol and methodology of Ethernet ARP
[2].
DDP ARP packets are broadcast on the local AppleTalk segment and are not
routed. Therefore, the DDP ARP method will only resolve addresses of
Macintosh hosts on the AppleTalk segment directly connected to the
gateway.
NBP ARP
The NBP ARP technique began with the release of Stanford's KIP gateway
software. This address resolution technique is a great deal more
flexible than the DDP ARP technique and allows for dynamic assignment of
IP addresses.
NBP ARP uses the AppleTalk NBP to register IP addresses in the AppleTalk
name space.
When a node (or a gateway) wishes to ARP for an IP address, it simply
uses the NBP lookup function to look for the IP address. If the address
is active, the node which has registered the IP address will
automatically answer with its AppleTalk address. This completes the ARP
function and provides a full destination AppleTalk address.
It is very important to note that NBP has a concept of named
administrative domains know as zones. Names are only guaranteed to be
unique inside of one zone. (There is also a shorthand to indicate "this
zone".) Because of this there is an implied mapping between the zone of
which the gateway is a member and the collection of Macintosh based IP
addresses accessible to the gateway. This issue is complicated somewhat
by the issue of forwarding versus subnetting and will be described more
fully in that section, below.
In contrast to DDP ARP, which is restricted to one AppleTalk wire due to
its use of local broadcasts, NBP ARP can reach Macintoshes on other
AppleTalk networks. The NBP protocol has provisions for propagating NBP
requests through gateways. As long as a node is in the same NBP zone as
the gateway, the NBP ARP method will properly resolve addresses.
Additionally, using NBP ARP creates an object which is visible to all
native AppleTalk devices, which can aid diagnostics. Finally, employing
the NBP protocol's provisions for registration, and lookups for multiple
objects with one request makes dynamic address assignment possible.
2.5 Gateways
The MacIP Gateway provides several functions in the gateway process. In
addition to sending packets back and forth between the two networks and
supporting address translation, or ARP, it provides a simple server
function for distributing important IP addresses and assigning IP
addresses to Macintosh hosts.
Macintosh hosts use the NBP protocol to discover a MacIP gateway. The
gateway registers a Network Visible Entity (NVE) of type "IPGATEWAY",
using its IP address in dot notation as its object name. When a
Macintosh wants to access a MacIP gateway service, it performs a lookup
for all NVEs of type "IPGATEWAY". Generally only one gateway will
respond and the Macintosh will record its AppleTalk address for future
use.
As an implementation note a Macintosh should be able to perform this
"gateway lookup" at any time, as the gateway may go down and reappear at
a difference AppleTalk address. A good technique would be to lookup the
gateway anew whenever the gateway does not answer. (This would be
indicated by an error at the DDP level when using LocalTalk.)
The MacIP gateway implements an AppleTalk Transaction Protocol (ATP)
based protocol for performing simple functions. There are two currently
defined functions which this protocol. These are get server info and
assign IP address.
The get server info function returns a list of common server IP
addresses, such as name server, file server and the broadcast address.
These are defined as part of the gateway's configuration and simply
passed on via the protocol without interpretation.
The assign IP address function returns an IP address which can be used
by the Macintosh host to communicate with other IP hosts. The gateway
is configured with a range of addresses for dynamic assignment and
maintains a table of these assigned addresses, periodically checking
that they are still in use. Assigned addresses are maintained for a
period of time so that if a Macintosh is rebooted and asks for an
address again, it will receive the same IP address.
It is important to note that IP addresses assigned via the gateway ATP
protocol must be registered and resolved using the NBP ARP technique.
The DDP ARP technique is only valid for use with statically assigned IP
addresses, as there is no protocol for registration or determining
which addresses are assigned.
2.6 TCP/IP Code on the Macintosh
*** TO BE WRITTEN ***
3 Protocol
3.1 Encapsulation Technique
TCP/IP packets are encapsulated in DDP packets of type 22 (decimal).
The source and destination sockets of the packet are 72 (decimal) by
convention. There is no requirement as to the use of short or long
headers. The packets can be run over any valid AppleTalk media,
including Ethernet.
When encapsulating a packet bound for AppleTalk, the TCP/IP packet is
stripped of any media headers and then sent as the data portion of the
DDP packet.
The AppleTalk DDP protocol limits the data size of a DDP packet to 586
bytes, which is then the MTU of the AppleTalk network when transporting
IP datagrams.
The Ethernet network has an MTU size of 1486 bytes. The smaller MTU
size of AppleTalk implies that gateways must fragment Ethernet packets
bound for AppleTalk which are larger than the AppleTalk MTU [3].
^A
3.2 Addressing Styles
The original SEAGate gateway and several early versions of the FastPath
gateway code provided access to the Ethernet IP network by treating the
AppleTalk network as an IP subnet [6, 7].
The KIP code does not form a subnet but rather forwards IP packets to
and from the Ethernet using proxy ARP.
There are two alternative approaches to integrating an AppleTalk network
into an IP network. One approach involves treating the AppleTalk
network as an IP subnet, with the MacIP gateway assuming the role of an
IP router. The alternative is to allocate a small range of addresses
from the IP network to the AppleTalk network. In this case, the MacIP
gateway forwards IP packets to and from AppleTalk.
The forwarding method is conceptually easier, and, thus, simpler to
configure. No large range of subnet addresses needs to be calculated
and allocated to the AppleTalk network.
The subnetting method is more difficult conceptually and, hence, harder
for a novice to configure. It is, however, more consistent with the
requirements of many large sites, and can be more practical in
complicated networks. This is especially true if the MacIP gateway will
emit Routing Information Protocol (RIP, [5]) packets to inform the
Ethernet network of the MacIP AppleTalk subnet.
Subnetting
Subnetting via the MacIP protocol is straightforward from the
perspective of IP routing. The gateway has two IP addresses (one for
each port M-P Ethernet and AppleTalk) and defines the AppleTalk network to
be a subnet of the IP network. This definition is done with a network
number and a subnet mask.
According to the defined IP gateway specification [4] the MacIP gateway
should only answer ARP requests for its own IP address. No proxy ARP
function should be performed. This requires that the TCP/IP hosts on
both sides of the gateway be informed of the gateway's presence. This
can be done via static routing tables or via the RIP protocol. A
conservative RIP implementation1 in the MacIP gateway is recommended for
this function.
Forwarding
When forwarding with the MacIP architecture, the AppleTalk network is
treated as an extension of the Ethernet IP network. This is done by
specifying a range of IP addresses which are allocated to the AppleTalk
network, and to which the MacIP gateway will "forward" packets from the
Ethernet. When a host on the Ethernet ARPs for an IP address which is
in this range, the gateway will answer, performing the proxy ARP
function. When a host on the AppleTalk ARPs for an IP address outside
of the range, the a gateway will reply to the ARP, again performing the
proxy ARP function. The address resolution on AppleTalk can be done
using the NBP or DDP technique. Dynamic assignment of IP addresses on
the AppleTalk side can be accomplished with the gateway ATP protocol;
see below.
3.3 Address Resolution Styles
DDP ARP
DDP ARP uses the same packet definition as Ethernet ARP but defines a
new hardware address type, and uses DDP for transport. This new address
type is four (4) bytes long and is comprised of a concatenated AppleTalk
network number (2 bytes), node number (1 byte), and socket (1 byte).
The mechanics of the ARP transaction using DDP are the same as those on
Ethernet. This implies that the gateway function also contains an cache
of resolved address translations.
NBP ARP
As stated above, NBP ARP uses the AppleTalk NBP protocol. Each active
IP address on the AppleTalk is registered as an NVE. Its existence can
be queried and uniqueness guaranteed and defended using the simple
protocol defined by NBP.
When registering a name and type with NBP a check is made for duplicate
registrations on the network. Having determined no duplicates exist,
NBP then will defend against future registrations of the same name.
This "atomic" attribute of NBP guarantees the uniqueness of IP addresses
registered this way.
When a host has decided what its IP address will be, it registers this
address as an ASCII name comprised of the IP address in its printed
form, using dot notation (i.e., "192.45.17.1"). Each NVE also has a
type defined by an ASCII string. The registered IP addresses have the
type "IPADDRESS".
Mapping a Zone to an IP Subnet
The NBP ARP method implies a relationship between the group of IP
addresses which reside on the AppleTalk network and the zone name of the
LocalTalk network connected to the gateway.
The implied relationship between the LocalTalk network's zone name and
the IP subnet can be exploited to implement directed broadcasts. If the
gateway receives a directed broadcast for the IP subnet, it could send
it out as a directed broadcast to each network in the zone, in the same
manner as NBP handles an NBP bridge request. If the gateway is
forwarding, any IP broadcasts on the Ethernet could be forwarded in the
same manner.
Using a Gateway From Another Zone
Because the gateway uses NBP to register itself, it is possible to look
for a gateway in any zone. If Macintosh is in zone A, it can look for a
gateway in zone B and then communicate with this gateway via the gateway
ATP protocol. This will allow the Macintosh to obtain an IP address and
communicate with the gateway.
The gateway maintains its table of assigned dynamic addresses by
periodically sending out NBP confirm requests. These requests are send
directly to the host which was assigned the address. Macintosh hosts
which are in a different zone than the gateway will respond correctly to
these confirm requests, and hence keep their address assignments alive.
While this allows a Macintosh in a different zone to use a MacIP
gateway, it breaks the relationship between the zone name and the
assigned IP addresses. A second Macintosh, within the zone, might
attempt to ARP for this out-of-zone machine M-P or, far worse, attempt to
claim the same IP address, yet the first Macintosh would not see the NBP
lookups. Although this may work for communication with non-AppleTalk IP
hosts, it will not allow future enhancement to take advantage of the
"zone to subnet/forward group" relationship.
3.4 Dynamic IP Address Assignment
Dynamic IP address assignment is accomplished in the MacIP protocol by
designating the gateway as an IP address server. The MacIP gateway is
given the task of handing out IP addresses to Macintosh hosts and
maintaining a table of assigned addresses.
Having located the MacIP gateway, the Macintosh host requests an IP
address. The gateway responds with an address if one is available. If
no addresses are available (generally because they are all in use) the
gateway responds with an error. If an address is successfully obtained,
it is then the responsibility of the Macintosh to attempt to register
this address with NBP.
In order to properly maintain the table of assigned addresses, the
gateway periodically sends out an NBP lookup for all objects of type
"IPADDRESS". Responses are matched against entries in the table.
Responses not found in the table are added, allowing for static
assignment of addresses within the range. Entries in the table for
which no responses are received are aged and eventually time out and are
removed.
When the gateway is first started, an initial lookup is done to prime
the table with any existing assignments. Note that since DDP ARP has no
protocol for performing the same operation, it is not appropriate for
use with dynamic IP address assignment.
In an implementation of a MacIP gateway, the table of assigned IP
addresses can be used to support the ARP function.
3.5 The Gateway ATP Protocol
The Gateway ATP Protocol is a simple request-response protocol based on
the AppleTalk ATP protocol. It can be supported without a requiring
full ATP implementation.
ATP requests are done using the exactly once, or "XO" type transaction.
It is not necessary for the gateway to completely implement the "XO"
semantic. Macintosh hosts should, however use it when making requests.
The user data portion of the ATP request is not used. Instead, the
first four (4) bytes of the request data form a long-word integer
request number. The byte ordering of the value is big-endian (most
significant byte first). The response packet is a structure consisting
of a sequence of four (4) byte integers, followed by a byte array
containing ASCII error text. The byte ordering of the integers in the
response packet is also big-endian. The ASCII error text is only valid
if the return code is negative when interpreted as a signed, 32 bit
quantity.
3.6 A Sample Transaction Stream
Below is a sample "transaction stream" designed to illustrate the use of
the gateway ATP protocol and the use of NBP to perform the ARP function
on AppleTalk.
Overview:
A Macintosh host wishes to find a MacIP gateway, obtain an IP address
Received: from iggppserv.igg.tno.nl by iggcis1.igg.tno.nl (4.1/SMI-4.1) id AA16360; Wed, 30 Dec 92 05:12:12 +0100
Received: by iggppserv.igg.tno.nl (4.1/SMI-4.1) id AA23502; Wed, 30 Dec 92 05:12:12 +0100
Resent-Date: Tue, 29 Dec 1992 19:37:11 -0800
Resent-From: root@iggppserv (System Manager)
Resent-Message-Id: <9212300412.AA23502@iggppserv.igg.tno.nl>
Resent-To: adam@iggcis1.tno.nl
Return-Path: <dewayne@netcom.com>
Received: from ITI.TNO.NL (tnoit1) by iggppserv.igg.tno.nl (4.1/SMI-4.1) id AA23455; Wed, 30 Dec 92 05:06:10 +0100
Received: from TNO.NL by ITI.TNO.NL; Wed, 30 Dec 92 04:54 MET
Received: from HEARNVAX.nic.SURFnet.nl by TNO.NL; Wed, 30 Dec 92 04:37 MET
Received: from netcom.netcom.com by HEARNVAX.nic.SURFnet.nl with PMDF#10216; Wed, 30 Dec 1992 04:39 MET
Received: from netcom.netcom.com by netcom.netcom.com (5.65/SMI-4.1/Netcom) id AA23360; Tue, 29 Dec 92 19:35:57 -0800
Date: Tue, 29 Dec 1992 19:37:11 -0800
From: dewayne@netcom.com
Subject: MacIP Spec
To: adam@IGG.tno.nl
Message-Id: <9212300335.AA23360@netcom.netcom.com>
X-Sender: dewayne@netcom.com (Unverified)
X-Attachments: :Macintosh HD:663:MacIP_Spec_#0.4.txt:
X-Envelope-To: adam@IGGPPSERV
Status: RO
from that gateway and open a TCP session with a host on Ethernet.
Macintosh Gateway
Step 1:
Perform NBP Lookup for object "=" (wildcard), type "IPGATEWAY".
Answers lookup with object "192.31.222.1", the gateway's IP address.
Step 2:
Send gateway ATP transaction get server info to gateway.
Respond with IP addresses as configured.
Step 3:
Send gateway ATP transaction assign IP address to gateway.
Look in table of assigned addresses, using source AppleTalk address as
key. If entry found, respond with previously assigned address. If no
entry found, create new entry and assign new IP address. Respond.
Step 4:
Register assigned address as an NBP NVE, the object being the IP
address in "dot-notation", and with type "IPADDRESS".
Step 5:
IP code wants to send TCP SYN to IP address 18.1.1.1; Either default to
18.1.1.1 as destination IP or decide that gateway is destination IP.
Perform NBP ARP for destination address, type "IPADDRESS".
Respond to ARP for either gateway's IP address or proxy ARP for true
destination address.
Step 6:
Encapsulate TCP SYN in DDP packet and send to gateway.
Remove DDP header, add Ethernet header, perform Ethernet ARP function,
if appropriate, and send packet on Ethernet
Destination host (18.1.1.1) responds with SYN. Remove Ethernet header,
add DDP header, perform ARP function for destination address. Send DDP
header.
The last few steps are performed repeatedly.
3.7 Closure: Why It Works
Bill Croft described the NBP ARP technique in the documentation which is
included with the KIP source code.
Lookups at gateway startup time
When the MacIP gateway starts up, it does an initial lookup for all
objects of type "IPADDRESS". If any responses are received, they are
added to a table of assigned addresses. In this way the gateway
recovers any state which may be lost if the gateway crashes or is
restarted.
Defending addresses
When a Macintosh is dynamically assigned an address or wishes to use a
statically assigned one, it first attempts to register its address using
NBP. This operation has two effects. First, it determines that the
address is not currently in use. Then, it secures the use of this
address ensuring the Macintosh's NBP software will respond to any
lookups for this address by other nodes which may be performing the same
operation. This sequence is equivalent to an atomic test and set
operation to ensure that addresses are only in use by one Macintosh at
one time.
4 History
4.1 The Original "SEAGate" Gateway code
The first "AppleTalk-to-Ethernet" gateway was created at Stanford
University around 1985 and was known as the M-TStanford Ethernet AppleTalk
Gateway", or SEAGate. It was comprised of a Multibus backplane, a 68000
CPU card and a simple LocalTalk (then known as "AppleBus") interface
card.
The SEAGate source code and design documents were freely available to
members of the Internet community. The initial design provided for
simple transport of encapsulated IP datagrams from AppleTalk-based
Macintosh computers to Ethernet based IP hosts. The DDP ARP protocol
was used and gateway configuration was simple and primitive.
A port of the MIT PC/IP code (a TCP/IP implementation for IBM PCs) to
the Macintosh was made by several people at Dartmouth College. The
first application was a simple Telnet application.
The initial Kinetics FastPath was essentially a commercialized version
of the Stanford SEAGate and ran modified SEAGate gateway code. The
initial FastPaths were shipped with the Dartmouth Telnet application.
4.2 The "KIP" Gateway Code
The original KIP software was an enhanced version of the original
SEAGate software. Over time it was enhanced and gained the ability to
do AppleTalk routing and encapsulation of AppleTalk packets inside UDP
datagrams.
The KIP software also added the ability to do centralized administration
of multiple gateways. This, combined with the ability to transport
AppleTalk packets to UNIX hosts by encapsulating them in UDP packets
gave rise to an AppleTalk implementation for UNIX known as the Columbia
AppleTalk Package, or CAP software. This software currently allows both
file sharing and printing to and from UNIX hosts and Macintosh
computers.
4.3 NCSA's TCP/Telnet Software
The National Center for Super Computer Application (NCSA) has put into
the public domain a Macintosh application which contains an
implementation of TCP/IP which supports the MacIP protocol. This
application was designed to be a terminal emulation program supporting
the TELNET protocol allowing terminal access to TCP/IP host computers.
The NCSA TCP/Telnet software supports static and Gateway based
assignment of IP addresses, using the gateway ATP protocol. Both NBP
and DDP ARP are supported.
This is currently the most widely distributed version of MacIP software
and is available in source form.
InterCon, Inc. of Reston, Va. has made a greatly enhanced version of the
this software (TCP/Connect) available as a commercial application.
4.4 Apple's MacTCP driver
Full Featured IP/UDP/TCP
Apple released V1.0 of the MacTCP drivers which provide TCP/IP protocols
for Macintosh computers. This software provides a consistent
application interface to the TCP/IP software layer and moves the
protocol software out of the Applications and into the Macintosh system
software.
In addition to the basic TCP and UDP services, basic Domain Name System
(DNS) resolver capabilities are supplied.
Supports Gateway ATP Protocol and NBP ARP
The MacTCP drivers support a portion of the MacIP protocol. This allows
Macintosh computers to communicate with TCP/IP hosts via the AppleTalk
network.
The V1.0 MacTCP drivers support the gateway ATP protocol as well as the
NBP ARP protocol. Static and Gateway (server) based address assignment
(via the gateway protocol) are supported. No support is available for
the older DDP ARP protocol.
5 Definitions
5.1 AppleTalk Protocol constants
MacIP MTU 516 bytes
DDP constants
MacIP packet type 22 (decimal)
DDP ARP packet type 23 (decimal)
DDP ARP constants
AppleTalk address type 3 (decimal)
NBP constants
gateway object type IPGATEWAY
registered IP address object type IPADDRESS
5.2 Gateway ATP Protocol Constants
ATP request command codes
ASSIGN assign IP address 1
NAME name server 2 (obsolete)
SERVER get server info 3
ATP response codes
SUCCESS same as request code
ERROR -1
6 Acknowledgements
Bill Croft - documents provided with the KIP code
Gauge Paulson and Tim K. - NCSA source code
John Romkey - original PC/IP source code
Tim Maroney and ? - port of PC/IP to Macintosh
References
[1] Sidhu, G., Andrews, R., and Oppenheimer, A., Apple Computer,
Inside AppleTalk, Addison-Wesley Publishing Company, Inc., Reading, MA,
1989.
[2] Plummer, D., "An Ethernet Address Resolution Protocol", RFC-826,
Symbolics, September 1982.
[3] Postel J., "Internet Protocol", RFC-791, USC Information Sciences
Institute, September 1981.
[4] Brandon, R., and Postel, J., "Requirements for Internet Gateways",
RFC-1009, USC Information Sciences Institute, June 1987.
[5] Hendrick, C., "Routing Information Protocol", RFC-1058, June 1988.
[6] Mogul, J., "Internet Subnets", RFC-917, Stanford University,
October 1984.
[7] Mogul, J., and Postel, J., "Internet Standard Subnetting
Procedure", RFC-950, Stanford University, August 1985.
1 In a conservative RIP implementation only the AppleTalk side of the
gateway should be advertised. No routing information obtained via RIP
should be propagated.